using System;
using System.Collections.Generic;
using System.Text;
using FriendsNearby.Services.Entities;
using InSTEDD.Labs.Geo;

namespace FriendsNearby.Services
{
    public interface IPeopleNearbyService
    {
        /// <summary>
        /// Returns Friends and Friends of a friend that are nearby <paramref name="userId"/>.
        /// Location and Nearby radius of <paramref name="userId"/> are used.
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        IList<PersonNearby> GetPeopleNearby(string userId);

        /// <summary>
        /// Returns Friends and Friends of a friend
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        IList<PersonNearby> GetAllPeople(string userId);
        
        /// <summary>
        /// List All Friends (direct only) of <paramref name="userId"/>.
        /// No matter if there inside nearby area.
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        IEnumerable<PersonNearby> GetAllFriends(string userId);

        IList<string> GetNotificationsForFacebookUser(string user);
    }
}
